'''
* This is the projet for Brtc LlmOps Platform
* @Author Leon-liao <liaosiliang@alltman.com>
* @Description //TODO 
* @File: 4_duplcate_prompt_use.py
* @Time: 2025/7/6
* @All Rights Reserve By Brtc
'''
from langchain_core.prompts import PromptTemplate, PipelinePromptTemplate
#一个全面的 提示词模板
full_template = PromptTemplate.from_template("""
{instruction}
{example}
{start}""")# 描述模板
instruction_template = PromptTemplate.from_template("你正在模拟{person}")
# 示例模板
example_template = PromptTemplate.from_template(""" 下面是一个例子：
Q:{example_q}
A:{example_a}""")
# 对话开始模板
start_template = PromptTemplate.from_template("""   现在你是一个真实人，请回答用户的问题:
Q:{input}
A: """)
piplines = [
    ("instruction", instruction_template),
    ("example", example_template),
    ("start", start_template),
]
pipeline_prompt = PipelinePromptTemplate(
    final_prompt=full_template,
    pipeline_prompts=piplines
)

print(pipeline_prompt.invoke({"person":"雷军",
    "example_q":"你最喜欢的汽车是什么？",
    "example_a":"小米su7",
    "input":"你最喜欢的手机是什么？",
}).to_string())
# 一个全面的提示词模板
full_template = PromptTemplate.from_template("""
{instruction}
{example}
{start}
""")

# 描述模板
instruction_template = PromptTemplate.from_template("你正在模拟{person}")
# 示例模板
example_template = PromptTemplate.from_template(
    """
    下面是一个例子：
    Q: {example_q},
    A: {example_a}
    """
)

# 对话开始模板
start_template = PromptTemplate.from_template("""
现在你是一个真实的人，请回答用户问题：
Q:{input}
A:
""")

piplines = [
    ("instruction",instruction_template),
    ("example",example_template),
    ("start",start_template)
]

pipline_prompt = PipelinePromptTemplate(
    final_prompt = full_template,
    pipline_prompts = piplines
)

print(pipline_prompt.invoke({
    "person":"lei军",
    "example_q":"你最喜欢的汽车是什么？",
    "example_a":"小米su7",
    "input":"你最喜欢的手机是什么",
}).to_string())